1. Field of the Invention
The present invention relates to using accelerometer data to determine communication state of a user on a network.
2. Description of the Related Art
Networks of general purpose computer systems connected by external communication links are well known and widely used in commerce. The networks often include one or more network devices that facilitate the passage of information between the computer systems. A network node is a network device or computer system connected by the communication links. An “end node” is a node that is configured to originate or terminate communications over the network. An “intermediate network node” facilitates the passage of data between end nodes.
Persons use networks to communicate in any of various ways, including by voice and multimedia over analog and digital telephone networks. Communications mechanisms using computer networks include file transfer, web page viewing, electronic mail (“email”), on-line chat, chat-rooms, shared digital logs (blogs), instant messaging, voice over IP, and audio or video or multi-media streaming, among others. Many of these communication mechanisms involve a “client” process operating on the person's local computer exchanging data with a “server” process operating on a remote computer on the network.
The client-server model of computer process interaction is widely known and used. According to the client-server model, a client process sends a message including a request to a server process, and the server process responds by providing a service. The server process may also return a message with a response to the client process. Often the client process and server process execute on different computer devices, called hosts, and communicate via a network using one or more protocols for network communications. Network nodes are often hosts for client and server processes. The term “server” is conventionally used to refer to the process that provides the service, or the host computer on which the process that provides the service operates. Similarly, the term “client” is conventionally used to refer to the process that makes the request, or the host computer on which the process that makes the request operates. As used herein, the terms “client” and “server” refer to the processes, rather than the host computers, unless otherwise clear from the context. In addition, the server process can be broken up to run as multiple processes on multiple hosts (sometimes called tiers) for reasons that include reliability, scalability, and redundancy, but not limited to those reasons.
Some communications, such as viewing web pages and email, are delayed communications that are completed at a later time when a second person signs on to the network to receive the communication. It is becoming more common for communications to be relatively immediate with multiple exchanges. Such communications require the presence of the remote party on the network. With the proliferation of networks, a person absent on one network (an enterprise private network) might be present on another network (e.g., a cellular telephone network or the public Internet).
Presence data is used in several extant and emerging applications. For example, in instant messaging applications, such as AOL Instant Messenger (AIM) from America Online of Dulles, Va. and PresenceWorks of PresenceWorks, Inc in Alexandria Va., presence data indicates the instantaneous knowledge that someone is available online and reachable via instant messaging.
More broadly, presence data indicates a dynamically changing set of channels, capabilities, characteristics, preferences and ability for remote persons to communicate and interact with each other over a network at the current time. Thus in the following, the terms “presence” and “present communication state” are used interchangeably. See for example the document identified as request for comments (RFC) 2778 found at a website of the Internet Engineering Task Force (IETF) found at domain ietf.org. The entire contents of RFC 2778 are hereby incorporated by reference as if fully set forth herein.
Presence data includes such present communicative states of availability as “online,” “offline,” “do not disturb,” “at lunch.” Some applications consider other availability information as presence data, including information that indicates, for a particular person, “try mobile phone first, then business line”, “always send e-mail” or “unavailable for conference calls, but available for webcasts.” In some applications, presence data may include physical location of the person such as “on travel in London,” or “at home,” or “in office” or “at company headquarters,” as well as a network address.
In some applications, presence data indicates people on the same (virtual) location like a web page or a shared document at the same time. In some applications, presence data indicates people who are within the same cell (the geographical area covered by a cellular phone antenna). In some applications, presence data indicates location of a person or facility based on a positioning system, such as the Global Positioning System (GPS) widely used in commerce and by the military. Geographic position is a communication state in the sense that one person is within sight or earshot of another person or node on the network.
As used in the following, presence data indicates the communication state for a person at the current time and includes all sources of such information, no matter how precise or reliable, including a person's planned location or communicative state in a calendar database for the current time. Predicted future communication states and recorded past communication states are communication states that are not considered within presence data.
Most applications that use presence data require a human user to manually input data so the application can more accurately infer the human user's state. For example, even after the human user logs onto an instant messaging service (which usually requires manual input but can be automated), the service does not know whether the user is sitting at a desk and looking at the host's display device or not. The system infers that the user is present and attentive if the user has recently typed any information using the keyboard. The system assumes the user is idle if no keys are pressed for several minutes. An idle user may be in the room attentive to a video or audio display on the host but doing some other activity, such as reading a paper or talking on a telephone. Alternatively, the user may be gone away from the host and in no situation to respond to network communications presented at that host during that time. To distinguish the two cases, the user must manually input data that indicates the user is leaving the vicinity of the network node and may be expected back in an estimated amount of time (e.g., out to lunch, “2 hour meeting,” “on vacation,” etc.) In these systems, the communicative state of a user is determined by manual input.
While requiring manual input to infer communicative state is useful in many circumstances, there are ever more circumstances in which such manual input is inconvenient or impossible. For example, a cellular telephone is turned on, but another user of the cellular telephone network has no information about whether the cellular telephone owner is available to communicate using the cellular telephone. The other user must cause the telephone to ring, wait for no response, and infer that the owner is unavailable, wasting time better spend contacting an alternate person who is available to talk. It is inconvenient for the cellular telephone owner to constantly press keys to notify the network that not only is the cellular telephone on, but the owner is currently available for communications using it.
Some emerging systems would benefit even more than the cellular telephone system from communication state data that does not require manual input. For example, mobile ad hoc networks (MANets) involve mobile wireless routers that network with other fixed or mobile wireless routers with which they come into transmission range. The mobile routers can be carried by humans, animals or vehicles, including robots, to interface multiple electronic devices also carried. MANets have applications in tactical police and military and emergency medical services scenarios, including Search and Rescue. The mobile routers feed information to various control interfaces for the vehicles or various display elements for a human user or stimuli for animals. The routers also receive and transmit to the network information from various sensors or input devices operated by the user, such as the person, an animal or the vehicle. The MANets allow different units to share more information more quickly so that the multiple units can proceed as a coordinated whole.
If a particular human, animal, or vehicular user of the mobile router loses the capacity to coordinate actions with the other units, then the other units would want to be made aware of this change in availability of that particular user. In some circumstances, communications with the particular user would be affected, that is the communication state of the user has changed. In some circumstances, the user would be unable to provide manual input to signal the change. For example, an animal or an injured human or a maximally active human might not be able to provide needed manual input. Communications are affected, for example, because if a particular user is unable to move, communications involving the user's motion are wasteful of scare network resources. If a person is unconscious, then the person is incommunicado regardless of the integrity of the person's electronic equipment. If a user is highly active dealing with a crisis, such as a burning home or hostile gunfire, the user is not available for non-crucial communications and is too busy to report this change in availability until the crisis has diminished.
The change in the communication state of the user leads to a change in the types of communication that should be used. In some circumstances, tactical communications might be dropped and replaced with diagnostic communications to determine what is wrong with that particular user. A pulse sensor for a living user might be interrogated. Various computerized systems or sensors on a vehicle would be interrogated. If remedial activity by the user could be determined, then it would be beneficial to transmit information conveying the remedial activity to the user on a channel the user is expected to receive (such as audio if the person is too consumed by crisis to view video).
In some circumstances, the user could become captured by hostile forces, and the information carried through the MANnet can be compromised. It would be desirable to know that the person's use of the network has changed, i.e., the communication state for network communications has changed, even though the person is unable to make any manual entries. As a result of this change in communication state, it would be desirable to stop transmitting sensitive information and delete all sensitive information stored on the devices carried by the person.
Based on the foregoing, there is a clear need for techniques to determine the communicative state of users of network nodes without manual input from the users and to communicate with the user based on the communicative state.
The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not to be considered prior art to the claims in this application merely due to the presence of these approaches in this background section.